S2S APM
Version: 3.5.1
Released: 2024/11/15
Introduction
This document describes integration procedures and VIRTUAL PAYMENT GATEWAY protocol usage for e-commerce merchants.
VIRTUAL PAYMENT GATEWAY protocol implements acquiring payments (purchases) with using specific API interaction.
Integration Process
Integration process
With all Payment Platform POST requests at Notification URL the Merchant must return the string OK if he/she successfully received data or return ERROR.
⚠️ Pay attention
Note that the notification URL may be temporarily blocked due to consistently receiving timeouts in response to the callback. If five timeouts accumulate within five minutes for a merchant’s notification URL, it will be blocked for 15 minutes. During this block, all merchants associated with the URL will not receive notifications. The block automatically lifts after 15 minutes. Additionally, it is possible to manually unblock the URL through the admin panel by navigating to Configuration → Merchants → Edit Merchant. In this case, the block will be removed immediately. The timeout counter resets if a callback response is successfully processed. For instance, if there are four timeouts within five minutes but a successful response on the sixth minute, the counter resets.
⚠️ Pay attention
In the case of cascading, the logic for sending callbacks differs. If cascading is triggered for the order, you will receive callbacks for the first payment attempt, where the decline occurred and which caused the cascading, as well as for the last payment attempt, where the final status of the order (settled or declined) is determined. Additionally, for the last attempt, the callback will include only the final status. That is, callbacks regarding 3DS or redirects will not be sent. Callbacks for intermediate attempts (between the first decline and the last payment attempt) are not sent.
Client Registration
Before you get an account to access Payment Platform, you must provide the following data to the Payment Platform administrator.
Data | Description |
---|---|
Callback URL | URL which will be receiving the notifications of the processing results of your request to Payment Platform |
Contact e-mail | Client`s contact email |
IP List | List of your IP addresses, from which requests to Payment Platform will be sent. |
With all Payment Platform POST requests at Callback URL the Client must return the string "OK" if he/she successfully received data or return "ERROR".
You should get the following information from administrator to begin working with the Payment Platform.
Parameter | Description |
---|---|
CLIENT_KEY | Unique key to identify the account in Payment Platform (used as request parameter). In the administration platform this parameter corresponds to the "Merchant key" field |
PASSWORD | Password for Client authentication in Payment Platform (used for calculating hash parameter). In the administration platform this parameter corresponds to the "Password" field |
PAYMENT_URL | URL to request the Payment |
Protocol Mapping
It is necessary to check the existence of the protocol mapping before using the S2S integration. Merchants can’t make payments if the S2S APM protocol is not mapped.
Payment Platform Interaction
For the transaction you must send the server to server HTTPS POST request to the Payment Platform URL (PAYMENT_URL). In response Payment Platform will return the JSON (http://json.org/)) encoded string.
List of possible actions in Payment Platform
When you make request to Payment Platform, you need to specify action that needs to be done. Possible actions are:
Action | Description |
---|---|
SALE | Creates SALE transaction |
CREDITVOID | Creates REFUND transaction |
VOID | Creates VOID transaction |
CREDIT2VIRTUAL | Creates CREDIT2VIRTUAL transaction |
DEBIT2VIRTUAL | Creates DEBIT transaction as a part of transfer flow |
GET_TRANS_STATUS | Gets status of transaction in Payment Platform |
List of possible transaction results and statuses
Result - value that system returns on request. Possible results are:
Result | Description |
---|---|
SUCCESS | Action was successfully completed in Payment Platform |
DECLINED | Result of unsuccessful action in Payment Platform |
REDIRECT | Additional action required from requester |
ACCEPTED | Action was accepted by Payment Platform, but will be completed later |
INIT | Additional action required from customer, final status will be sent in callback |
ERROR | Request has errors and was not validated by Payment Platform |
Status - actual status of transaction in Payment Platform. Possible statuses are:
Status | Description |
---|---|
PREPARE | Status is undetermined, final status will be sent in callback |
REDIRECT | The transaction awaits SALE |
SETTLED | Successful transaction |
VOID | Transaction for which void was made |
REFUND | Transaction for which refund was made |
PENDING | The payment has been initiated and additional actions are required from customer |
DECLINED | Not successful transaction |
Callback Events
Merchants receive callbacks when creating transactions with the following statuses:
Transaction | Status |
---|---|
SALE, CREDITVOID, DEBIT | SUCCESS, FAIL, WAITING, UNDEFINED |
VOID, CREDIT2VIRTUAL | SUCCESS, FAIL, UNDEFINED |
Transactions requests
SALE request
Use SALE request to create a payment in the Payment Platform.
If you want to send a payment for the specific sub-account (channel), you need to use channel_id
that specified in your Payment Platform account settings.
This request is sent by POST in the background (e.g. through PHP CURL).
Request Parameters
Parameter | Description | Limitations | Required |
---|---|---|---|
action | Action to perform (=SALE) | = SALE | + |
client_key | Unique client key (CLIENT_KEY) | + | |
channel_id | Payment channel (Sub-account) | String up to 16 characters | - |
brand | Brand through which the transaction is performed | String up to 36 characters(Appendix B) | + |
order_id | Transaction ID in the Clients system | String up to 255 characters | + |
order_amount | The amount of the transaction. For purchase operation with crypto: Do not send parameter at all if you want to create a transaction with an unknown amount - for cases when the amount is set by the payer outside the merchant site (for example, in an app). As well, you have to omit "amount" parameter for hash calculation for such cases. | Format depends on currency. Send Integer type value for currencies with zero-exponent. Example: 1000 Send Float type value for currencies with exponents 2, 3, 4. Format for 2-exponent currencies: XX.XX Example: 100.99 Pay attention that currencies 'UGX', 'JPY', 'KRW', 'CLP' must be send in the format XX.XX, with the zeros after comma. Example: 100.00 Format for 3-exponent currencies: XXX.XXX Example: 100.999. Format for 4-exponent currencies: XXX.XXXX Example: 100.9999 ⚠️ Note! For crypto currencies use the exponent as appropriate for the specific currency. | + |
order_currency | Currency | 3 characters for fiat currencies and from 3 to 6 characters for crypto currencies | + |
order_description | Description of the transaction (product name) | String up to 1024 characters | + |
identifier | Extra parameter for transaction. It could be token, account information, additional descriptor etc. This is optional if crypto currency is used | String up to 255 characters | + |
payer_first_name | Customer's name | String up to 32 characters | - |
payer_last_name | Customer's surname | String up to 32 characters | - |
payer_address | Customer's address | String up to 255 characters | - |
payer_house_number | Customer's house or building number | String up to 9 characters | - |
payer_country | Customer's country | 2-letter code | - |
payer_state | Customer's state | String up to 32 characters | - |
payer_city | Customer's city | String up to 40 characters | - |
payer_district | Customer's district of city | String up to 32 characters | - |
payer_zip | ZIP-code of the Customer | String up to 32 characters | - |
payer_email | Customer's email | String up to 256 characters | - |
payer_phone | Customer's phone | String up to 32 characters | - |
payer_birth_date | Customer's birthday | Date format is "YYYY-MM-DD" | - |
payer_ip | IP-address of the Customer. Both versions, IPv4 and IPv6, can be used. If you are sending IPv6, make sure the payment provider that processes the payments supports it. | XXX.XXX.XXX.XXX | + |
return_url_target | Name of, or keyword for a browsing context where Customer should be returned according to HTML specification. | String up to 1024 characters Possible values: _blank , _self , _parent , _top or custom iframe name (default _top ).Find the result of applying the values in the HTML standard description (Browsing context names) | - |
return_url | URL to which Customer should be returned after operation in third-party system | String up to 1024 characters | + |
parameters | Array of the parameters for specific brand | (Appendix B) | + |
custom_data | Array with the custom data This block duplicates the arbitrary parameters that were passed in the payment request | Format: custom_data [param1]: value1 custom_data [param2]: value2 custom_data [paramN]: valueN | - |
hash | Special signature to validate your request to Payment Platform | See Appendix A, Sale signature. | + |
Response Parameters
You will get JSON encoded string with transaction result.
INIT transaction response (for crypto flow)
Parameter | Description |
---|---|
action | SALE |
result | SUCCESS |
status | PENDING |
order_id | Transaction ID in the Client's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | This is a string which the owner of the credit card will see in the statement from the bank. In most cases, this is the Customer's support web-site |
amount | Order amount |
currency | Currency |
crypto_address | Public address of a cryptocurrency wallet |
crypto_network | Blockchain network where the transaction is taking place |
Successful sale response
Parameter | Description |
---|---|
action | SALE |
result | SUCCESS |
status | SETTLED |
order_id | Transaction ID in the Client's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | This is a string which the owner of the credit card will see in the statement from the bank. In most cases, this is the Customers support web-site |
amount | Order amount |
currency | Currency |
Unsuccessful sale response
Parameter | Description |
---|---|
action | SALE |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Client's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
decline_reason | The reason why the transaction was declined |
amount | Order amount |
currency | Currency |
Redirect transaction response
Parameter | Description |
---|---|
action | SALE |
result | REDIRECT |
status | REDIRECT |
order_id | Transaction ID in the Client's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
redirect_url | URL to which the Client should redirect the Customer |
redirect_params | Array of specific parameters |
redirect_method | The method of transferring parameters (POST or GET) |
amount | Order |
currency | Currency |
Undefined sale response
Parameter | Description |
---|---|
action | SALE |
result | UNDEFINED |
status | REDIRECT / PREPARE |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | This is a string which the owner of the credit card will see in the statement from the bank. In most cases, this is the Customers support web-site |
amount | Order amount |
currency | Currency |
Callback parameters
INIT transaction response (for crypto flow)
Parameter | Description |
---|---|
action | SALE |
result | SUCCESS |
status | PENDING |
order_id | Transaction ID in the Client's system |
trans_id | Transaction ID in the Payment Platform |
hash | Hash |
trans_date | Transaction date in the Payment Platform |
descriptor | This is a string which the owner of the credit card will see in the statement from the bank. In most cases, this is the Customer's support web-site |
amount | Order amount |
currency | Currency |
crypto_address | Public address of a cryptocurrency wallet |
crypto_network | Blockchain network where the transaction is taking place |
Successful sale response
Parameter | Description |
---|---|
action | SALE |
result | SUCCESS |
status | SETTLED |
order_id | Transaction ID in the Client's system |
trans_id | Transaction ID in the Client's system |
trans_date | Transaction date in the Payment Platform |
descriptor | This is a string which the owner of the credit card will see in the statement from the bank.In most cases, this is the Customers support web-site |
exchange_rate | Rate used to make exchange |
exchange_rate_base | The rate used in the double conversion to convert the original currency to the base currency |
exchange_currency | Original currency |
exchange_amount | Original amount |
hash | Special signature to validate callback. See Appendix A, Callback signature. |
amount | Order amount |
currency | Currency |
custom_data | Object with the custom data. This block duplicates the arbitrary parameters that were passed in the payment request |
Unsuccessful sale response
Parameter | Description |
---|---|
action | SALE |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Client's system |
trans_id | Transaction ID in the Client's system |
trans_date | Transaction date in the Payment Platform |
descriptor | Transaction date in the Payment Platform |
decline_reason | Description of the cancellation of the transaction |
hash | Special signature to validate callback. See Appendix A, Callback signature. |
amount | Order amount |
currency | Currency |
custom_data | Object with the custom data. This block duplicates the arbitrary parameters that were passed in the payment request |
Redirect transaction response
Parameter | Description |
---|---|
action | SALE |
result | REDIRECT |
status | REDIRECT |
order_id | Transaction ID in the Client's system |
trans_id | Transaction ID in the Client's system |
trans_date | Transaction date in the Payment Platform |
redirect_url | URL to which the Client should redirect the Customer |
redirect_params | Array parameters |
redirect_method | The method of transferring parameters (POST or GET) |
hash | Special signature to validate callback. See Appendix A, Callback signature. |
amount | Order amount |
currency | Currency |
custom_data | Object with the custom data. This block duplicates the arbitrary parameters that were passed in the payment request |
Undefined sale response
Parameter | Description |
---|---|
action | SALE |
result | UNDEFINED |
status | REDIRECT / PREPARE |
order_id | Transaction ID in the Merchant's system system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | TDescriptor from the bank, the same as cardholder will see in the bank statement |
amount | Order amount |
currency | Order currency |
custom_data | Object with the custom data. This block duplicates the arbitrary parameters that were passed in the payment request |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
CREDIT2VIRTUAL request
CREDIT2VIRTUAL request is used to create CREDIT2VIRTUAL transaction in Payment Platform.
This operation transfers money from merchants account to customer account.
If you want to send a payout for the specific sub-account (channel), you need to use channel_id
that specified in your Payment Platform account settings.
This request is sent by POST in the background (e.g., through PHP CURL).
Request Parameters
Parameter | Description | Values | Required |
---|---|---|---|
action | CREDIT2VIRTUAL | CREDIT2VIRTUAL | + |
client_key | Unique client key (CLIENT_KEY) | + | |
channel_id | Payment channel (Sub-account) | String up to 16 characters | - |
brand | Brand through which the transaction is performed | String up to 36 characters | + |
order_id | Order ID in the Clients system | String up to 255 characters | + |
order_amount | The amount of the transaction | Format depends on currency. Send Integer type value for currencies with zero-exponent. Example: 1000 Send Float type value for currencies with exponents 2, 3, 4. Format for 2-exponent currencies: XX.XX Example: 100.99 Pay attention that currencies 'UGX', 'JPY', 'KRW', 'CLP' must be send in the format XX.XX, with the zeros after comma. Example: 100.00 Format for 3-exponent currencies: XXX.XXX Example: 100.999. Format for 4-exponent currencies: XXX.XXXX Example: 100.9999 | + |
order_currency | Currency | 3-letter code | + |
order_description | Description of the transaction (product name) | String up to 1024 characters | + |
parameters | Array of the parameters for specific brand | (Appendix C) | + |
hash | Special signature to validate your request to Payment Platform | See Appendix A, Credit2Virtual signature. | + |
Response Parameters
You will get JSON encoded string with transaction result.
Successful response
Parameter | Description |
---|---|
action | CREDIT2VIRTUAL |
result | SUCCESS |
status | SETTLED |
order_id | Order ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
amount | Order amount |
currency | Currency |
Response Example (Successful result)
Unsuccessful response
Parameter | Description |
---|---|
action | CREDIT2VIRTUAL |
result | DECLINED |
status | DECLINED |
order_id | Order ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
decline_reason | The reason why the transaction was declined |
amount | Order amount |
currency | Currency |
Response Example (Unsuccessful result)
Undefined response
Parameter | Description |
---|---|
action | CREDIT2VIRTUAL |
result | UNDEFINED |
status | PREPARE |
order_id | Order ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
amount | Order amount |
currency | Currency |
Response Example (Undefined result)
Callback parameters
Successful response
Parameter | Description |
---|---|
action | CREDIT2VIRTUAL |
result | SUCCESS |
status | SETTLED |
order_id | Order ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
hash | Special signature to validate callback. See Appendix A, Credit2Virtual callback signature |
amount | Order amount |
currency | Currency |
Response Example (Successful result)
Unsuccessful response
Parameter | Description |
---|---|
action | CREDIT2VIRTUAL |
result | DECLINED |
status | DECLINED |
order_id | Order ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction ID in the Payment Platform |
decline_reason | Description of the cancellation of the transaction |
hash | Special signature to validate callback. See Appendix A, Credit2Virtual callback signature |
amount | Order amount |
currency | Currency |
Response Example (Unsuccessful result)
Undefined response
Parameter | Description |
---|---|
action | CREDIT2VIRTUAL |
result | UNDEFINED |
status | PREPARE |
order_id | Order ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Date of CREDIT2CARD action |
hash | Special signature to validate callback. See Appendix A, Formula 6 |
amount | Order amount |
currency | Currency |
Response Example (Undefined result)
CREDITVOID request
CREDITVOID request is used to complete REFUND transactions.
REFUND transaction is used to return funds to account, previously submitted by SALE transactions.
This request is sent by POST in the background (e.g. through PHP CURL).
Request parameters
Parameter | Description | Limitations | Required |
---|---|---|---|
action | Action to perform | = CREDITVOID | + |
client_key | Unique client key | CLIENT_KEY | |
trans_id | Transaction ID in the Payment Platform | String up to 255 characters | + |
amount | The amount for partial refund. Several partial refunds allowed. | Format depends on currency. Send Integer type value for currencies with zero-exponent. Example: 1000 Send Float type value for currencies with exponents 2, 3, 4. Format for 2-exponent currencies: XX.XX Example: 100.99 Pay attention that currencies 'UGX', 'JPY', 'KRW', 'CLP' must be send in the format XX.XX, with the zeros after comma. Example: 100.00 Format for 3-exponent currencies: XXX.XXX Example: 100.999. Format for 4-exponent currencies: XXX.XXXX Example: 100.9999 | - |
hash | Special signature to validate your request to Payment Platform | See Appendix A, Creditvoid signature. | + |
Response parameters
Parameter | Description |
---|---|
action | CREDITVOID |
result | ACCEPTED |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
Callback parameters
Successful refund response
Parameter | Description |
---|---|
action | CREDITVOID |
result | SUCCESS |
status | REFUND (full refund) / SETTLED (partial refund) |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
creditvoid_date | Date of the refund/reversal |
amount | Amount of refund |
hash | Special signature, used to validate callback. See Appendix A, Creditvoid signature. |
Unsuccessful refund response
Parameter | Description |
---|---|
action | CREDITVOID |
result | DECLINED |
status | SETTLED |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
decline_reason | Description of the cancellation of the transaction |
hash | Special signature, used to validate callback. See Appendix A, Creditvoid signature. |
Undefined refund response
Parameter | Description |
---|---|
action | CREDITVOID |
result | UNDEFINED |
status | SETTLED |
order_id | Transaction ID in the Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
creditvoid_date | Transaction date in the Payment Platform |
amount | Amount of refund |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
VOID request
The VOID request is used to cancel the operation which was performed the same financial day.
The cancellation is possible for the SALE operation.
The VOID request is allowed for the payments in SETTLED status only.
This request is sent by POST in the background (e.g. through PHP CURL).
Request parameters
Parameter | Description | Limitations | Required |
---|---|---|---|
action | Action to perform | = VOID | + |
client_key | Unique client key | CLIENT_KEY | + |
trans_id | Transaction ID in the Payment Platform | String up to 255 characters | + |
hash | Special signature to validate your request to Payment Platform | See Appendix A, Void signature. | + |
Response parameters
You will get JSON encoded string with transaction result.
Successful void response
Parameter | Description |
---|---|
action | VOID |
result | SUCCESS |
status | VOID |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
Unsuccessful void response
Parameter | Description |
---|---|
action | VOID |
result | DECLINED |
status | SETTLED |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
decline_reason | The reason why the transaction was declined |
Undefined void response
Parameter | Description |
---|---|
action | VOID |
result | UNDEFINED |
status | SETTLED |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
Callback parameters
Successful void response
Parameter | Description |
---|---|
action | VOID |
result | SUCCESS |
status | SETTLED |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
Unsuccessful void response
Parameter | Description |
---|---|
action | VOID |
result | DECLINED |
status | SETTLED |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
decline_reason | The reason why the transaction was declined |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
Undefined void response
Parameter | Description |
---|---|
action | VOID |
result | UNDEFINED |
status | SETTLED |
order_id | Transaction ID in the Merchant's system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
DEBIT request
Use debit actions to create debit transactions. When conducting a debit transaction, merchants can utilize commissions for payments by configuring the appropriate settings in the admin panel.
Debit transactions can be executed in two ways:
One-step debit
This option enables payment processing with a single request - DEBIT2VIRTUAL.
If commissions are set for debits, they will be applied immediately upon payment. The commission amount can be viewed in the callback (commission
parameter).
Two-steps debit
This option involves initiating the debit using the DEBIT2VIRTUAL_CALC request first, followed by confirming the operation through the DEBIT2VIRTUAL_COMPLETE request.
In this scenario, if commissions are configured for debits, the commission amount will be returned in the response (commission
parameter) after executing the DEBIT2VIRTUAL_CALC request.
DEBIT2VIRTUAL request parameters
Use DEBIT2VIRTUAL action to create debit transaction in one step.
Parameter | Description | Values | Required |
---|---|---|---|
action | Action that you want to perform. Fixed value. | DEBIT2VIRTUAL | + |
client_key | Unique key (CLIENT_KEY) | UUID format value | + |
order_id | Transaction ID in the Merchants system | String up to 255 characters | + |
order_amount | The amount of the transaction | Numbers in the form XXXX.XX | + |
order_currency | Currency | 3-letter code | + |
order_description | Description of the transaction (product name) | String up to 1024 characters | + |
identifier | Extra parameter for transaction. It could be token, account information, additional descriptor etc. | String up to 255 characters | + |
brand | Brand through which the transaction is performed | String up to 36 characters | + |
payer_first_name | Customer’s name | String up to 32 characters | - |
payer_last_name | Customer’s surname | String up to 32 characters | - |
payer_middle_name | Customer’s middle name | String up to 32 characters | - |
payer_birth_date | Customer’s birthday | format yyyy-MM-dd, e.g. 1970-02-17 | - |
payer_address | Customer’s address | String up to 255 characters | - |
payer_address2 | The adjoining road or locality (if required) of the customer’s address | String up to 255 characters | - |
payer_country | Customer’s country | 2-letter code | - |
payer_state | Customer’s state | String up to 32 characters | - |
payer_city | Customer’s city | String up to 32 characters | - |
payer_zip | ZIP-code of the Customer | String up to 10 characters | - |
payer_email | Customer’s email | String up to 256 characters | - |
payer_phone | Customer’s phone | String up to 32 characters | - |
payer_ip | IP-address of the Customer | XXX.XXX.XXX.XXX | + |
payer_return_url | Customer return URL | String up to 256 characters | + |
hash | Special signature to validate your request to Payment Platform | See Appendix A, Debit signature | + |
Response parameters
You will get JSON encoded string with transaction result. If your account supports 3D-Secure, transaction result will be sent to your Notification URL.
Successful response
Parameter | Description |
---|---|
action | DEVIT2VIRTUAL |
result | SUCCESS |
status | 3DS / REDIRECT / SETTLED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction: total_amount = amount + commission |
Unsuccessful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction |
decline_reason | The reason why the transaction was declined |
Undefined response
Parameter | Description |
---|---|
action | DEVIT2VIRTUAL |
result | UNDEFINED |
status | REDIRECT / PREPARE |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Order currency |
commission | Commission for transaction |
total_amount | Total amount for transaction: total_amount = amount + commission |
Callback parameters
Successful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL |
result | SUCCESS |
status | REDRIECT / 3DS / SETTLED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction: total_amount = amount + commission |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
Unsuccessful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction: total_amount = amount + commission |
decline_reason | Description of the cancellation of the transaction |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
Undefined response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL |
result | UNDEFINED |
status | REDIRECT / PREPARE |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Order currency |
commission | Commission for transaction |
total_amount | Total amount for transaction: total_amount = amount + commission |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
DEBIT2VIRTUAL_CALC request parameters
Use DEBIT2VIRTUAL_CALC action to initiate DEBIT transaction and to get commission value.
Parameter | Description | Values | Required |
---|---|---|---|
action | Action that you want to perform. Fixed value. | DEBIT2VIRTUAL_CALC | + |
client_key | Unique key (CLIENT_KEY) | UUID format value | + |
order_id | Transaction ID in the Merchants system | String up to 255 characters | + |
order_amount | The amount of the transaction | Numbers in the form XXXX.XX | + |
order_currency | Currency | 3-letter code | + |
order_description | Description of the transaction (product name) | String up to 1024 characters | + |
identifier | Extra parameter for transaction | It could be token, account information, additional descriptor etc. | + |
brand | Brand through which the transaction is performed | String up to 36 characters | + |
payer_first_name | Customer’s name | String up to 32 characters | - |
payer_last_name | Customer’s surname | String up to 32 characters | - |
payer_middle_name | Customer’s middle name | String up to 32 characters | - |
payer_birth_date | Customer’s birthday | format yyyy-MM-dd, e.g. 1970-02-17 | - |
payer_address | Customer’s address | String up to 255 characters | + |
payer_address2 | The adjoining road or locality (if required) of the customer’s address | String up to 255 character | - |
payer_country | Customer’s country | 2-letter code | - |
payer_state | Customer’s state | String up to 32 characters | - |
payer_city | Customer’s city | String up to 32 characters | - |
payer_zip | ZIP-code of the Customer | String up to 10 characters | - |
payer_email | Customer’s email | String up to 256 characters | - |
payer_phone | Customer’s phone | String up to 32 characters | - |
payer_ip | IP-address of the Customer | XXX.XXX.XXX.XXX | + |
payer_return_url | Customer return URL | String up to 256 characters | + |
hash | Special signature to validate your request to Payment Platform | See Appendix A, Debit signature | + |
Response parameters
You will get JSON encoded string with transaction result.
Successful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL_CALC |
result | SUCCESS |
status | PREPARE |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction: total_amount = amount + commission |
Unsuccessful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL_CALC |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction |
decline_reason | The reason why the transaction was declined |
Callback parameters
Successful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL_CALC |
result | SUCCESS |
status | PREPARE |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
Unsuccessful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL_CALC |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction |
decline_reason | Description of the cancellation of the transaction |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
DEBIT2VIRTUAL_COMPLETE request parameters
Use DEBIT2VIRTUAL_COMPLETE action to confirm initiated debit transaction.
Parameter | Description | Values | Required field |
---|---|---|---|
action | Action that you want to perform. Fixed value. | DEBIT2VIRTUAL_COMPLETE | + |
client_key | Unique key (CLIENT_KEY) | UUID format value | + |
trans_id | Initiated transfer transaction ID in the Payment Platform | UUID format value | + |
hash | Special signature to validate your request to Payment Platform | See Appendix A, Complete Debit signature | + |
Response parameters
You will get JSON encoded string (see an example on Appendix B) with transaction result. If your account supports 3D-Secure, transaction result will be sent to your Notification URL.
Successful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL_COMPLETE |
result | SUCCESS |
status | 3DS / REDIRECT / SETTLED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction |
Unsuccessful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL_COMPLETE |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction |
decline_reason | The reason why the transaction was declined |
Undefined response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL_COMPLETE |
result | UNDEFINED |
status | REDIRECT / PREPARE |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Order currency |
commission | Commission for transaction |
total_amount | Total amount for transaction: total_amount = amount + commission |
Callback parameters
Successful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL |
result | SUCCESS |
status | 3DS / REDIRECT / SETTLED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
Unsuccessful response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL |
result | DECLINED |
status | DECLINED |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Currency |
commission | Commission for transaction |
total_amount | Total amount for transaction |
decline_reason | Description of the cancellation of the transaction |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
Undefined response
Parameter | Description |
---|---|
action | DEBIT2VIRTUAL |
result | UNDEFINED |
status | REDIRECT / PREPARE |
order_id | Transaction ID in the Merchant’s system |
trans_id | Transaction ID in the Payment Platform |
trans_date | Transaction date in the Payment Platform |
descriptor | Descriptor from the bank, the same as payer will see in the bank statement |
amount | Order amount |
currency | Order currency |
commission | Commission for transaction |
total_amount | Total amount for transaction: total_amount = amount + commission |
hash | Special signature, used to validate callback, see Appendix A, Formula 2 |
GET_TRANS_STATUS request
Gets order status from Payment Platform. This request is sent by POST in the background (e.g., through PHP CURL).
Request parameters
Parameter | Description | Values | Required |
---|---|---|---|
action | GET_TRANS_STATUS | GET_TRANS_STATUS | + |
client_key | Unique client key (CLIENT_KEY) | + | |
trans_id | Transaction ID in the Payment Platform | String up to 255 characters | + |
hash | Special signature to validate your request to Payment Platform | See Appendix A, GET_TRANS_STATUS signature | + |
Response parameters
Parameter | Description |
---|---|
action | GET_TRANS_STATUS |
result | SUCCESS |
status | REDIRECT / PREPARE / DECLINED / SETTLED / REFUND / VOID |
order_id | Order ID in the Client’s system |
trans_id | Transaction ID in the Payment Platform |
decline_reason | Reason of transaction decline. It shows for the transactions with the “DECLINED” status |
Errors
In case error you get synchronous response from Payment Platform:
Parameter | Description |
---|---|
result | ERROR |
error_message | Error message |
Testing
You can make test requests using data below. Please note, that all transactions will be processed using Test engine.
Customer's email | Testing / Result |
---|---|
success@gmail.com | This email must be used for testing successful sale. Response on successful SALE request: {action: SALE, result: SUCCESS, status: SETTLED} |
fail@gmail.com | This email date must be used for testing unsuccessful sale Response on unsuccessful SALE request: ` {action: SALE, result: DECLINED, status: DECLINED} |
Supported brands
Use the following brand names as values for the brand
parameter in the requests:
airtel
(available for Credit2Virtual, see Appendix C for details)
allpay
applepay
(see Appendix B for Sale operation details)
araka
astropay
axxi-cash
axxi-pin
(see Appendix B for Sale operation details)
a2a_transfer
beeline
(see Appendix B for Sale operation details)
billplz
(see Appendix B for Sale operation details)
bitolo
(available for Credit2Virtual, see Appendix C for details)
bpwallet
cardpaymentz
citizen
cnfmo
crypto-btg
dl
dlocal
doku-hpp
(see Appendix B for Sale operation details)
dpbanktransfer
fairpay
(see Appendix B for Sale operation details; available for Credit2Virtual - see Appendix C for details)
fawry
(send phone number as identifier parameter for SALE operation)
feexpaycard
gigadat
googlepay
(see Appendix B for Sale operation details)
hayvn
(see Appendix B for Sale operation details)
hayvn-wdwl
(see Appendix B for Sale operation details)
helio
help2pay
(available for Credit2Virtual, see Appendix C for details)
ideal_crdz
instant-bills-pay
ipasspay
jvz
(available for Credit2Virtual, see Appendix C for details)
kashahpp
m2p-debit
(see Appendix B for Sale operation details)
m2p-withdrawal
(see Appendix B for Sale operation details)
mcpayhpp
mcpayment
mercury
(available for Credit2Virtual, see Appendix C for details)
moov-money
moov-togo
mpesa
(available for Credit2Virtual, see Appendix C for details)
mtn-mobile-money
naps
netbanking-upi
(available for Credit2Virtual, see Appendix C for details)
next-level-finance
nimbbl
noda
(available for Credit2Virtual, see Appendix C for details)
nv-apm
om-wallet
one-collection
(available for Credit2Virtual, see Appendix C for details)
papara
(available for Credit2Virtual, see Appendix C for details)
payablhpp
payhere
paymentrush
payneteasyhpp
(required to additionally send parameters in the SALE request: payer_first_name, payer_last_name, payer_address, payer_city, payer_state, payer_zip, payer_country, payer_phone, payer_email)
payok-payout
(available for Credit2Virtual, see Appendix C for details)
payok-promptpay
payok-upi
(see Appendix B for Sale operation details)
paypal
paythrough-upi
(see Appendix B for Sale operation details)
paytota
(available for Credit2Virtual, see Appendix C for details)
pix
pr-cash
(available for Credit2Virtual, see Appendix C for details)
pr-creditcard
(available for Credit2Virtual, see Appendix C for details)
pr-cryptocurrency
pr-online
(available for Credit2Virtual, see Appendix C for details)
ptn-sms
(see Appendix B for Sale operation details; available for Credit2Virtual - see Appendix C for details)
ptn-email
(see Appendix B for Sale operation details; available for Credit2Virtual - see Appendix C for details)
pyk-bkmexpress
(see Appendix B for Sale operation details)
pyk-dana
pyk-linkaja
pyk-momo
(see Appendix B for Sale operation details)
pyk-nequipush
(see Appendix B for Sale operation details)
pyk-ovo
pyk-paparawallet
(see Appendix B for Sale operation details)
pyk-payout
(available for Credit2Virtual, see Appendix C for details)
pyk-pix
pyk-promptpay
(see Appendix B for Sale operation details)
pyk-shopeepay
pyk-truemoney
(see Appendix B for Sale operation details)
pyk-upi
(see Appendix B for Sale operation details)
pyk-viettelpay
(see Appendix B for Sale operation details)
pyk-zalopay
(see Appendix B for Sale operation details)
sepa
stcpay
stripe-js
sz-in-imps
sz-in-paytm
sz-in-upi
(see Appendix B for Sale operation details)
sz-jp-p2p
sz-kr-p2p
sz-my-ob
sz-th-ob
sz-th-qr
sz-vn-ob
sz-vn-p2p
tabby
(see Appendix B for Sale operation details)
tamara
(see Appendix B for Sale operation details)
togocom
trustgate
unipayment
vcard
(see Appendix B for Sale operation details)
vpayapp_upi
yo-uganda-limited
(see Appendix B for Sale operation details; available for Credit2Virtual - see Appendix C for details)
xprowirelatam-ted
xprowirelatam-cash
xprowirelatam-bank-transfer
xprowirelatam-bank-slip
xprowirelatam-picpay
xprowirelatam-pix
xswitfly
yapily
(see Appendix B for Sale operation details)
zeropay
(available for Credit2Virtual, see Appendix C for details)
Appendix A
Hash is signature rule used either to validate your requests to payment platform or to validate callback from payment platform to your system. It must be md5 encoded string calculated by rules below:
Sale signature
Hash is calculated by the formula:
_md5(strtoupper(strrev(identifier + order_id + order_amount + order_currency + PASSWORD)));_
Creditvoid signature
Hash is calculated by the formula:
_md5(strtoupper(strrev(trans_id + PASSWORD)));_
Void signature
Hash is calculated by the formula:
$hash = md5(strtoupper(strrev($trans_id)) . $ PASSWORD);
Credit2Virtual signature
Hash is calculated by the formula:
$hash = md5(strtoupper(strrev($order_id . $order_amount . $order_currency)) . $PASSWORD);
Debit signature
Hash is calculated by the formula:
_md5(strtoupper(strrev(identifier + order_id + order_amount + order_currency + PASSWORD)));_
Complete Debit signature
Hash is calculated by the formula:
$hash = md5(strtoupper(strrev($trans_id)) . $ PASSWORD);
GET_TRANS_STATUS signature
Hash is calculated by the formula:
$hash = md5(strtoupper(strrev($trans_id)) . $ PASSWORD);
Callback signature
Hash is calculated by the formula:
array_walk_recursive($params, static function (&$value) {
$value = strrev($value);
});
$params['hash'] = md5(strtoupper(convert($params) . PASSWORD));
function convert($params)
{
foreach ($params as &$value) {
if (is_array($value)) {
$value = $this->convert($value);
}
}
ksort($params);
return implode($params);
}
Sale callback signature
Hash calculation for notification in S2S APM based on the next formula:
• All parameter values from the callback are used, except for hash;
• Sort values alphabetically by their parameter names;
• Reverse each value individually;
• Concatenate all reversed values together into a single string;
• Convert this string to uppercase;
• Append the password in uppercase to the end of this string;
• Generate the MD5 hash of the resulting string
For example, for callback like this:
result=SUCCESS
amount=9.22
transactions=[ctrans1 = 123, atrans2 =32, itrans2 =325]
formula will be looking like this:
hash = reverse(action) + reverse(amount) + reverse(result) + reverse(transactions.atrans2) + reverse(transactions.ctrans1) + reverse(transactions.itrans2) + PASSWORD
and string_result:
string_result = ELASSSECCUS22.923321523PASSWORD
and hash:
hash = md5(string_result)
Credit2Virtual callback signature
Hash is calculated by the formula:
$hash = md5(strtoupper(strrev($trans_id . $order_id . $status)) . $ PASSWORD);
Appendix B
You have to add to your SALE request specific list of parameters which is determined by the value for the brand
parameter.
You should get additional information from account manager.
vcard
To make payments on Test connector kindly set the value “vcard” for the brand
parameter.
Sample curl request
To simulate success scenario use identifier
parameter value success@gmail.com and fail@gmail.com for decline.
Apple Pay
To provide the payers with the possibility of Apple Pay payments you can connect to the Checkout or work directly via S2S APM protocol.
If you work via Checkout page you don’t need any additional development on your side.
If you work via S2S APM protocol, you must pass you must be able to obtain Apple Pay payment token that must be passed in the SALE request.
Regardless of the protocol you have to make settings in the admin panel and set the following configurations:
• Merchant Identifier, Country and Shop Name – according to the merchant’s data from Apple Pay Developper account
• Certificate and Private Key – generated Apple Pay certificate and private key
• Merchant Capabilities and Supported Networks – configurations for Apple Pay payments
• Processing Private Key – private key that uses for payment token decryption (requires if payment provider supports).
⚠️ Pay attention
Before using Apple Pay via S2S APM protocol, you should review next section carefully. There is a description on how you can obtain Apple Pay payment token (it refers to the official Apple Pay documentation)
- Each payment must be checked for Apple Pay accessibility
- Show Apple Pay button to your payers
- Validate the merchant identity
- Provide a payment request and create a session
- Receive Apple Pay payment token (paymentData object)
After you implement Apple Pay payment tokens generation on your site, you need to pass for the SALE request:
• brand
= applepay
• parameters[paymentToken]
- Apple Pay payment token
Request example
We also recommend checking out the demo provided by Apple for Apple Pay: https://applepaydemo.apple.com/
Set Up Apple Pay
If you are using the S2S protocol for Apple Pay payments, you will need to configure your Apple Developer account. Follow these steps to set up Apple Pay in your Apple Developer account:
1. Create a Merchant ID in the "Certificates, Identifiers & Profiles" section.
2. Register and verify the domains involved in the interaction with Apple Pay (e.g., the checkout page URL where the Apple Pay button is placed) in the "Merchant Domains" section.
3. Create a Merchant Identity Certificate in the "Merchant Identity Certificate" section:
- Generate a pair of certificates (*.csr and *.key) and upload the *.csr file in the "Merchant Identity Certificate" section.
- Create a Merchant Identity Certificate based on the generated CSR file.
- Download the *.pem file from the portal.
⚠️ Note
The *.csr file can be obtained from the payment provider that processes Apple Pay, and the *.pem file should be uploaded to your payment provider's dashboard, following their instructions.
4. Create a Processing Private Key in the "Apple Pay Payment Processing Certificate" section:
- Generate a pair of certificates (*.csr and *.key) and upload the *.csr file.
- Create a Payment Processing Certificate based on the generated CSR file.
For more detailed instructions on setting up Apple Pay, refer to the following resource: Learn more about setting up Apple Pay
Next, enter the data from your Apple Pay developer account into the platform's admin panel: Go to the "Merchants" section, initiate editing, open the "Wallets" tab, navigate to the Apple Pay settings, and fill in the following fields:
- Merchant Identifier: Enter the Merchant ID.
- Certificate: Upload the *.pem file downloaded from the "Merchant Identity Certificate" section.
- Private Key: Upload the *.key file from the certificate pair generated for the Merchant Identity Certificate.
- Processing Private Key (required for token decryption): Paste the text from the Processing Private Key file. Ensure it is a single line of text (without spaces or breaks) placed between "BEGIN" and "END."
axxi-pin
If you set the value “axxi-pin” for the brand
parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
pin | Flexepin 16-digit pin number | String 16 characters | + |
Sample curl request
beeline
Parameter | Description | Values | Required |
---|---|---|---|
productReceiver | Recipient's phone number/contract number | String | - |
Sample curl request
billplz
Take into account that payer_first_name
and payer_last_name
parameters are required for this brand.
If you set the billplz
value for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
bank_code | SWIFT Bank Code | String | + |
bank_account_number | Bank account number | String | + |
Sample curl request
doku-hpp
If the payer chooses the doku-hpp
payment method, the redirection to another page will happen to finish the payment.
You can add to the Authentication request a specific list of parameters which may be required for the doku-hpp
payment method.
Parameter | Type | Mandatory | Description |
---|---|---|---|
product_reference_id | String | Conditional | SKU/item ID of the item in this transaction. This parameter is mandatory if you want to use Akulaku, Kredivo and Indodana. Allowed chars: alphabetic, numeric, special chars. Max Length: 64. |
product_name | String | Conditional | Name of the product item. This parameter is mandatory if you want to use Kredivo, Jenius and Indodana. Allowed chars: alphabetic, numeric, special chars. Max Length: 255 |
product_quantity | Number | Conditional | Quantity of the product item. This paramater mandatory if you want to use Kredivo, Akulaku, Indodana and Jenius. Allowed chars: numeric. Max Length: 4 |
product_sku | String | Conditional | SKU of the product item. This paramater mandatory if you want to use Kredivo, Akulaku and Indodana. |
product_category | String | Conditional | Category of the product item. This paramater mandatory if you want to use Kredivo, Akulaku and Indodana. |
product_url | String | Conditional | URL to the product item on merchant site. This paramater mandatory if you want to use Kredivo and Indodana. |
product_image_url | String | Conditional | URL (image) of the product item on merchant site. This paramater mandatory if you want to use Indodana. |
product_type | String | Conditional | Type of the item in this transaction. This paramater mandatory if you want to use Indodana |
Authentication request example
fairpay
If you set the value fairpay
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
personalId | Customer's personal ID. It is only required for Brazil and Chile and Colombia (For Brazil, only numeric symbols are allowed, for Chile and Colombia letters can be used as well) | String | - |
Sample curl request
Google Pay
To provide the payers with the possibility of Google Pay™ payment you can connect to the Checkout or work directly via S2S APM protocol.
Before using googlepay
payment method, you should review this section carefully to meet all the Google Pay™ requirements:
- Overview the documentation on Google Pay Integration first:
• for sites - Google Pay Web developer documentation
• for Android app - Google Pay Android developer documentation - Make sure you complete all the items on the integration checklist:
• for sites - Google Pay Web integration checklist
• for Android app - Google Pay Android integration checklist - To brand your site with Google Pay elements, you must meet the requirements:
• for sites - Google Pay Web Brand Guidelines
• for Android app - Google Pay Android brand guidelines - The merchants must adhere to the Google Pay APIs Acceptable Use Policy and accept the terms that the Google Pay API Terms of Service defines.
To work with Google Pay™ payments through gateway, you need to make settings in the admin panel. You can set the following configurations:
• choose the environment: TEST
or PRODUCTION
• specify "Allowed Auth Method" - PAN_ONLY
or CRYPTOGRAM_3DS
• determine "Supported Networks" - MASTERCARD, VISA, AMEX, DISCOVER, JCB
These configuration will be applied and used when platform interacts with Google Pay.
If you are using Checkout integration to work with googlepay
payment method, it requires no additional code implementation.
If you are using S2S APM integration to work with googlepay
payment method, you need to pass the additional parameters in the SALE request:
• brand
= googlepay
• parameters[paymentToken]
- Google Pay payment token.
To obtain Google Pay payment token you should get the PaymentData according to the Google Pay API Integration documentation (see the links above).
Pass the following parameters to receive PaymentData:
• allowPaymentMethods
: CARD
• tokenizationSpecification
= { "type": "PAYMENT_GATEWAY"}
• allowedCardNetworks
= ['MASTERCARD', 'VISA', 'AMEX', 'DISCOVER', 'JCB'];
• allowedCardAuthMethods
= ['PAN_ONLY', 'CRYPTOGRAM_3DS'];
• gateway
= value provided by your support manager
• gatewayMerchantId
= CLIENT_KEY (API key)
Example of data to get PaymentData
As a result you receive you will be returned a dataset with PaymentData.token
object contains data that you need add to the SALE request as parameters[paymentToken]
parameter.
Request Example
⚠️ Pay attention
in the case of PAN_ONLY, the responsibility for passing 3ds is transferred to the acquirer, through which the payment is processed
Set up Google Pay
To set up Google Pay, you first need to determine who acts as the gateway when processing payments: the platform or the payment provider. This depends on which side decrypts the Google Pay payment token.
- If the platform decrypts the token and then sends the decrypted payment data to the payment provider, the platform acts as the gateway.
- If the payment provider decrypts the token (i.e., expects to receive an encrypted payment token in the payment request), the payment provider is the gateway.
The gateway (whether it is the platform or the payment provider processing Google Pay) must provide the following information:
- Gateway: The name of the gateway.
- Gateway Merchant ID: The merchant identifier in the gateway's system.
⚠️ Note
If the payment provider is the gateway, it is important to clarify whether they expect the token to include additional information, such as the payer's address or phone number.
The next step is to enter the data into the admin panel.
Go to the "Merchants" section, initiate editing, open the "Wallets" tab, navigate to the Google Pay settings, and fill in the following fields:
- Merchant Identifier: Enter the identifier from the Google Business Console. If the platform is the gateway, you can duplicate the Gateway Merchant ID here.
- Gateway: The gateway for interaction with Google Pay.
- Gateway Merchant ID: The merchant identifier in the Google gateway.
- Private Key (required for decrypted token): The key for decrypting the payment token. If the platform is the gateway, the key should be provided by the platform. If the payment provider is the gateway, the key is not required.
- Include Additional Parameters to Google Token: Depending on the payment provider's requirements.
Additionally, to work with Google Pay payments, you must verify the checkout domains from which Google Pay is processed in the Google Business Console. For domain verification, you may need to contact support.
hayvn
Parameter | Description | Values | Required |
---|---|---|---|
payment_currency | Currency for the specified payment amount. Available values: BTC ETH USDC USDT | String | + |
Sample curl request
hayvn-wdwl
Parameter | Description | Values | Required |
---|---|---|---|
address | Address of the recipient. | String | + |
currency | Recipient address currency. BTC ETH USDC USDT | String | + |
network | Recipient address network. BTC ETH BSC TRX | String | + |
Sample curl request
m2p-debit
If you set the value m2p-debit
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
paymentGatewayName | Name of payment gateway that will be used for deposit | String | + |
paymentCurrency | Name of payment currency that will be used for deposit | String | + |
tradingAccountLogin | Depositor’s trading account id | String | - |
Sample curl request
m2p-withdrawal
If you set the value m2m-withdrawal
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
withdrawCurrency | CRYPTO currency Cryptocurrency to which currency is converted | String | + |
address | User cryptocurrency wallet address to withdraw | String | + |
tradingAccountLogin | Trading account ID of a user requesting a withdrawal | String | - |
Sample curl request
payok-upi
If you set the value payok-upi
for the brand parameter you have to specify in your request the next parameter required for India:
Parameter | Description | Values | Required |
---|---|---|---|
personal_id | UPI ID Condition: If the parameter is NOT specified in the request for India, then it will be collected on the Checkout page | String | +/- |
Sample curl request
paythrough-upi
If you set the value paythrough-upi
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
upi_id | UPI ID | String | + |
Sample curl request
ptn-email
If you set the value ptn-email
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
SecurityQuestion | The security question | String | - |
SecurityQuestionAnswer | SecurityQuestionAnswer standards: - No spaces. - Length must be between 3 and 25 characters long | String | + |
Sample curl request
ptn-sms
If you set the value ptn-sms
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
SecurityQuestion | The security question | String | - |
SecurityQuestionAnswer | SecurityQuestionAnswer standards: - No spaces. - Length must be between 3 and 25 characters long | String | - |
Sample curl request
pyk-bkmexpress
If you set the value pyk-bkmexpress
for the brand parameter you have to specify in your request the next parameter required for Turkey:
Parameter | Type | Mandatory | Description |
---|---|---|---|
orgCode | String | Conditional | Payer's Institution (Bank) Code. Condition: If the parameter is NOT specified in the request for Turkey, then it will be collected on the Checkout page |
accountName | String | Conditional | Payer's name, length 1~64 characters; Example: Colin Ford. Must be exactly the same as the actual payer's name. Condition: If the parameter is NOT specified in the request for Turkey, then it will be collected on the Checkout page |
accountNumber | String | Conditional | Payer's Institution (Bank) account number. Must be exactly the same as the account number of the actual payment. Condition: If the parameter is NOT specified in the request for Turkey, then it will be collected on the Checkout page |
pyk-momo
If you set the value pyk-momo
for the brand parameter you have to specify in your request the next parameter required for Vietnam:
Parameter | Type | Mandatory | Description |
---|---|---|---|
personal_id | String | Conditional | Payer's Identity ID. Condition: If the parameter is NOT specified in the request for Vietnam, then it will be collected on the Checkout page |
pyk-nequipush
If you set the value pyk-nequipush
for the brand parameter you have to specify in your request the next parameter required for Colombia:
Parameter | Type | Mandatory | Description |
---|---|---|---|
personal_id | String | Conditional | Payer's Identity ID. Condition: If the parameter is NOT specified in the request for Colombia, then it will be collected on the Checkout page |
pyk-paparawallet
If you set the value pyk-paparawallet
for the brand parameter you have to specify in your request the next parameter required for Turkey:
Parameter | Type | Mandatory | Description |
---|---|---|---|
orgCode | String | Conditional | Payer's Institution (Bank) Code. Condition: If the parameter is NOT specified in the request for Turkey, then it will be collected on the Checkout page |
accountName | String | Conditional | Payer's name, length 1~64 characters; Example: Colin Ford. Must be exactly the same as the actual payer's name. Condition: If the parameter is NOT specified in the request for Turkey, then it will be collected on the Checkout page |
accountNumber | String | Conditional | Payer's Institution (Bank) account number. Must be exactly the same as the account number of the actual payment. Condition: If the parameter is NOT specified in the request for Turkey, then it will be collected on the Checkout page |
pyk-promptpay
If you set the value pyk-promptpay
for the brand parameter you have to specify in your request the next parameter required for Thailand:
Parameter | Type | Mandatory | Description |
---|---|---|---|
orgCode | String | Conditional | Payer's Institution (Bank) Code. Condition: If the parameter is NOT specified in the request for Thailand, then it will be collected on the Checkout page |
accountName | String | Conditional | Payer's name, length 1~64 characters; Example: Colin Ford. Must be exactly the same as the actual payer's name. Condition: If the parameter is NOT specified in the request for Thailand, then it will be collected on the Checkout page |
accountNumber | String | Conditional | Payer's Institution (Bank) account number. Must be exactly the same as the account number of the actual payment. Condition: If the parameter is NOT specified in the request for Thailand, then it will be collected on the Checkout page |
pyk-truemoney
If you set the value pyk-truemoney
for the brand parameter you have to specify in your request the next parameter required for Thailand:
Parameter | Type | Mandatory | Description |
---|---|---|---|
orgCode | String | Conditional | Payer's Institution (Bank) Code. Condition: If the parameter is NOT specified in the request for Thailand, then it will be collected on the Checkout page |
accountName | String | Conditional | Payer's name, length 1~64 characters; Example: Colin Ford. Must be exactly the same as the actual payer's name. Condition: If the parameter is NOT specified in the request for Thailand, then it will be collected on the Checkout page |
accountNumber | String | Conditional | Payer's Institution (Bank) account number. Must be exactly the same as the account number of the actual payment. Condition: If the parameter is NOT specified in the request for Thailand, then it will be collected on the Checkout page |
pyk-upi
If you set the value pyk-upi
for the brand parameter you have to specify in your request the next parameter required for India:
Parameter | Description | Values | Required |
---|---|---|---|
personal_id | Payer's Identity ID. Condition: If the parameter is NOT specified in the request for India, then it will be collected on the Checkout page | String | +/- |
Sample curl request
pyk-viettelpay
If you set the value pyk-viettelpay
for the brand parameter you have to specify in your request the next parameter required for Vietnam:
Parameter | Type | Mandatory | Description |
---|---|---|---|
personal_id | String | Conditional | Payer's Identity ID. Condition: If the parameter is NOT specified in the request for Vietnam, then it will be collected on the Checkout page |
pyk-zalopay
If you set the value pyk-zalopay
for the brand parameter you have to specify in your request the next parameter required for Vietnam:
Parameter | Type | Mandatory | Description |
---|---|---|---|
personal_id | String | Conditional | Payer's Identity ID. Condition: If the parameter is NOT specified in the request for Vietnam, then it will be collected on the Checkout page |
sz-in-upi
If you set the value sz-in-upi
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
upiAddress | Payer's UPI address | String | + |
Sample curl request
tabby
If you set the value tabby
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
category | Required as name of high-level category (Clothes, Electronics,etc.); or a tree of category-subcategory1-subcategory2; or id of the category and table with category-ids data mapped provided. | String | + |
buyer_registered_since | Time the customer got registred with you, in UTC, and displayed in ISO 8601 datetime format. | String | + |
buyer_loyalty_level | Default: 0 Customer's loyalty level within your store, should be sent as a number of successfully placed orders in the store with any payment methods. | Number | + |
Sample curl request
tamara
If you set the value tamara
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
shipping_amount | Shipping amount | Number | + |
tax_amount | Tax amount | Number | + |
product_reference_id | The unique id of the item from merchant's side | String | + |
product_type | Product type | String | + |
product_sku | Product sku | String | + |
product_amount | Product amount | Number | + |
Sample curl request
yapily
If you set the value yapily
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
payee_name | Provide here the account provider code of the institution holding the account indicated in the Account parameter. | String | + |
payee_country | This parameter enables you to attach a file to the transaction. This is useful, for example, in the case where you may want to attach a scanned receipt, or a scanned payment authorization, depending on your internally established business rules. This parameter requires you to provide the name of the file you are attaching, as a string, for example “receipt.doc” or “receipt.pdf”. Note that the contents of this parameter are ignored if you have not provided the contents of the file using NarrativeFileBase64 below. | String | + |
payee_identifications | The account identifications that identify the Payer bank account. Array should contain the objects with the Identifications combinations: type and identification parameters. | Array | + |
type | Used to describe the format of the account. Possible values: • SORT_CODE • ACCOUNT_NUMBER • IBAN • BBAN • BIC • PAN • MASKED_PAN • MSISDN • BSB • NCC • ABA • ABA_WIRE • ABA_ACH • ROLL_NUMBER • BLZ • IFS • CLABE • CTN • BRANCH_CODE • VIRTUAL_ACCOUNT_ID | String | + |
identification | Account Identification. The value associated with the account identification type. | String | + |
Sample curl request
yo-uganda-limited
If you set the value yo-uganda-limited
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
AccountProviderCode | Provide here the account provider code of the institution holding the account | String | - |
NarrativeFileName | This parameter enables you to attach a file to the transaction. This is useful, for example, in the case where you may want to attach a scanned receipt, or a scanned payment authorization, depending on your internally established business rules. This parameter requires you to provide the name of the file you are attaching, as a string, for example “receipt.doc” or “receipt.pdf”. Note that the contents of this parameter are ignored if you have not provided the contents of the file using NarrativeFileBase64 below. | String | - |
NarrativeFileBase64 | This parameter enables you to attach a file to the transaction. This is useful, for example, in the case where you may want to attached a scanned receipt, or a scanned payment authorization, depending on your business rules. This parameter requires you to provide the contents of the file you are attaching, encoded in base-64 encoding. Note that the contents of this parameter are ignored if you have not provided a file name using NarrativeFileName above. | String | - |
ProviderReferenceText | In this field, enter text you wish to be present in any confirmation message which the mobile money provider network sends to the subscriber upon successful completion of the transaction. Some mobile money providers automatically send a confirmatory text message to the subscriber upon completion of transactions. This parameter allows you to provide some text which will be appended to any such confirmatory message sent to the subscriber. | String | - |
Sample curl request
Appendix C
You have to add to your CREDIT2VIRTUAL request specific list of parameters which is determined by the value for the brand
parameter.
You should get additional information from account manager.
airtel
If you set the value airtel
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
payee_country | Transaction country (2-letters code) | String | + |
payee_phone | Mobile Number validated according to ITU-T E.164. | String | + |
Sample curl request
astropay
If you set the value astropay
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
country | Transaction Country ISO Code | String 2 characters | + |
merchant_user_id | A unique identifier on the merchant's end for the user (user email). | String up to 64 characters | + |
phone | User's phone number. Must contain country code. If you are using the phone number the country code must be added to the number. Ex: 5561900001234 | String up to 50 characters | + |
Sample curl request
bitolo (INR)
If you set the value bitolo-inr
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
account_holder_firstname | First name of the user | String | + |
account_holder_lastname | Last name of the user | String | + |
bank_name | Bank name. Example: AXIS | String | + |
account_no | Account number. Example: 12xxxxx1231 | String | + |
ifsc_code | IFSC code | String | + |
Sample curl request
bitolo (BRL)
If you set the value bitolo-brl
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
mode_of_payout | Mode of payout. Values: BANK or PIX | String | + |
account_holder_firstname | First name of the user | String | + |
account_holder_lastname | Last name of the user | String | + |
bank_code | Bank code will be shared as a document. Required if mode of payout is BANK | String | - |
bank_branch | Branch code of the bank. Required if Mode of Payout is BANK | String | - |
account_no | Account number of the receiver. Required if Mode of Payout is BANK | String | - |
tax_id | CPF of the receiver | String | + |
pix_key | PIX key. Required if mode of payout is PIX | String | - |
Sample curl request
fairpay
If you set the value fairpay
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
method | The payout method. List of values: • pix - for PIX, Brasil • bank-transfer-br - for Bank Transfer, Brasil • spei - for SPEI, Mexico • bank-transfer-cl - for Bank transfer, Chile • bank-transfer-pe - for Bank transfer, Peru • bank-transfer-ec - Bank transfer, Ecuador • bank-transfer-co - for Colombia -Bank transfer | String | + |
firstName | Beneficiary's first name | String | + |
lastName | Beneficiary's last name | String | + |
documentNumber | Beneficiary's document number. | String | + |
documentType | Beneficiary's document type. List of values: • Brasil: One of CPF, CNPJ • Mexico: One of RFC, CURP or ND. • Chile: Should be one of RUT, RUN, PAS, CE. • Peru-Bank transfer: Should be one of DNI, RUC, PAS, CE. • Ecuador-Bank transfer: Should be one of CEDULA, RUC, PAS. | String | + |
bankCode | Beneficiary's bank code. Optional for payment method PIX (PIX, Brasil) | String | + |
account | Beneficiary's account number. | String | + |
accountType | Beneficiary's account type. List of values: • PIX, Brasil: One of: CPF, CNPJ, EVP, PHONE, EMAIL • Bank Transfer, Brasil: One of: SAVINGS, CHECKING • SPEI, Mexico: One of debit, phone or clabe. • Bank transfer, Chile: Should be one of CHECKING, SAVINGS, VISTA, RUT, SALARY. • Bank transfer, Peru: Should be one of CHECKING, SAVINGS. • Bank transfer, Ecuador: Should be one of CHECKING, SAVINGS, VIRTUAL. | String | + |
accountDigit | Account Digit. Required only for payment method bank-transfer-br (Bank Transfer, Brasil) | String | - |
branch | Branch. Required only for payment method bank-transfer-br (Bank Transfer, Brasil) | Max length 4 | - |
region | Region. Required only for payment method bank-transfer-pe (Bank transfer, Peru) | String | - |
Sample curl request
jvz
If you set the value jvz
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
holder_name | Bank account holder name (mandatory for bank transfer). | String | + |
bank_acc_number | Bank account number (mandatory for bank transfer). | String | + |
branch_id | Branch ID (optional). | String | - |
name_of_bank | Name of the bank (mandatory for bank transfer). | String | + |
banking_code | Swift code or other banking code (mandatory for bank transfer). | String | + |
branch_bank | Branch of the bank (optional). | String | - |
address_of_bank | Address of the bank branch where the account is opened (optional). | String | - |
account_type | Type of account (e.g., savings account, current account). | String | - |
receiver_name | Recipient’s full name (required if needed as per regional compliance). | String | - |
receiver_address | Recipient’s address (optional). | String | - |
user_fname | First name of the source user. | String | - |
user_lname | Last name of the source user. | String | - |
user_email | Email of the source user (e.g., xyz@abc.com). | String | + |
user_address | Address of the source user. | String | - |
user_city | City of the source user. | String | - |
user_state | State of the source user. | String | - |
user_country | 2 or 3-digit transaction country code. | String | + |
user_zip | Zip code of the source user. | String | - |
user_phone | Contact number of the source user. | String | + |
user_doc_id | Payer user ID used for verification (mandatory as per regional compliance). | String | - |
user_doc_type | Payer user document used for verification (mandatory as per regional compliance). | String | - |
Sample curl request
help2pay
If you set the value help2pay
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
ClientIP | Server IP | String (1-80) | + |
bankCode | Bank code | String (1-50) | + |
toBankAccountName | Recipient Account Name | String (1-50) | + |
toBankAccountNumber | Recipient Account Number | String (1-50) | + |
toProvince | Customer Bank located within a country | String (1-200) | - |
toCity | Customer Bank located City | String (1-200) | - |
Sample curl request
mercury
If you set the value mercury
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
externalMemo | Optional external memo | String | - |
recipient_name | Recipient’s name | String | + |
recipient_email | Recipient’s e-mail | String | + |
recipient_accountNumber | Recipient account number | String | + |
recipient_routingNumber | Recipient’s routing number | String | + |
recipient_electronicAccountType | Recipient’s electronic account type. Possible values: businessChecking businessSavings personalChecking personalSavings | String | + |
recipient_address1 | Recipient’s Address line 1 | String | + |
recipient_address2 | Recipient’s Address line 1 | String | - |
recipient_city | Recipient’s city | String | + |
recipient_region | Recipient’s region. Either a two-letter US state code like "CA" for California or a free-form identification of a particular region worldwide | String | + |
recipient_postalCode | Recipient’s postal code | String | + |
recipient_country | Recipient’s country. Use ISO 3166 Alpha2 code | String | + |
Sample curl request
mpesa
If you set the value mpesa
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
CommandID | This is a unique command that specifies B2C transaction type. • SalaryPayment: This supports sending money to both registered and unregistered M-Pesa customers. • BusinessPayment: This is a normal business to customer payment, supports only M-PESA registered customers. • PromotionPayment: This is a promotional payment to customers. The M-PESA notification message is a congratulatory message. Supports only M-PESA registered customers. | String | + |
PartyB | This is the customer mobile number to receive the amount. The number should have the country code (254) without the plus sign. | String | + |
Sample curl request
noda
If you set the value noda
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
iban | International Bank Account Number (IBAN) of the Payout Recipient. Example: DE75512108001245126199 | String | + |
beneficiaryName | The full name of the payee as known to their banks | String | + |
Sample curl request
one-collection
If you set the value "one-collection" for the brand
parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
FullName | Encrypted submission using platform public key, with RSA mode encryption | String | + |
BankName | Bank Name | String | + |
BankCode | Bank Code | String | + |
BranchName | Branch Name | String | + |
BranchCode | Branch Code | String | + |
AccountNumber | Account Number | String | + |
Sample curl request
papara
If you set the value papara
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
memberId | Customer ID | String | + |
NameSurname | Customer Full Name | String | + |
AccountNumber | The Account Number for payment | String | + |
Sample curl request
Paygate10 Netbanking/UPI
If you set the value netbanking-upi
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
country_code | Customer’s country. Must be 2-letter code | String 2 characters | + |
user_name | Merchant’s customer “user name” | String up to 100 characters | + |
account_name | Beneficiary Bank Account Name | String up to 100 characters | + |
account_number | Beneficiary Bank Account Number | String up to 20 characters | + |
bank_name | Bank name | String up to 100 characters | + |
bank_ifsc | Bank IFSC code | String up to 20 characters | + |
bank_branch | Bank branch name | String up to 100 characters | + |
bank_address | Bank address | String up to 250 characters | + |
Sample curl request
payok-payout
If you set the value payok-payout
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
countryCode | The Country Code of the corresponding country | String (4) | + |
number | Beneficiary Account Number | String (30) | + |
orgId | Bank ID | String (20) | + |
orgCode | Bank Code | String (20) | + |
orgName | Bank Name | String (45) | + |
holderName | Bank Card Holder Name | String (200) | + |
firstName | Beneficiary's First Name | String (20) | + |
lastName | Beneficiary's Last Name | String (20) | + |
email | User's email | String (45) | + |
phone | The cardholder's phone number | String (20) | + |
personal_id | Identity ID of the payee | String (12) | Conditional |
personalType * | ID type of the payee | String (10) | Conditional |
accountType * | Account type of the payee | String (10) | Conditional |
* - conditional parameters are required for specific method, region and currency that is determined by the payment providers rules.
Sample curl request
paytota (MTN)
If you set the value paytota
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
payee_phone | Mobile Number validated according to ITU-T E.164. | String | + |
Sample curl request
payretailers
If you set the value payretailers
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
BeneficiaryFirstName | Beneficiary first name | String | + |
BeneficiaryLastName | Beneficiary last name | String | + |
PayoutBeneficiaryTypeCode * | Payout beneficiary type code | String | Conditional |
DocumentType | Document type | String | + |
DocumentNumber | Document number | String | + |
Email | Beneficiary e-mail | String | + |
Phone * | Beneficiary phone | String | Conditional |
City * | Beneficiary city | String | Conditional |
Address * | Beneficiary address | String | Conditional |
Country | Beneficiary country, 2-letter code | String | + |
BankName | Bank name. Possible values: 001 - Banco do Brasil S.A. 341 - Banco Itaú S.A. 033 - Banco Santander (Brasil) S.A. 237 - Banco Bradesco S.A. 237 - Next Tecnologia e Serviços Digitais 104 - Caixa Econômica Federal 422 - Banco Safra S.A. 748 - Banco Cooperativo Sicredi S.A. 041 - Banco do Estado do Rio Grande do Sul S.A. BANRISUL 208 - BANCO BTG PACTUAL S.A. 655 - Neon Pagamentos 077 - Banco Inter S.A. 121 - Banco Agibank S.A. 212 - Banco Original S.A. 260 - Nubank 336 - Banco C6 S.A. | String | + |
AbaSwift | The swift number of the bank used by the customer. | String | Conditional |
AccountAgencyNumber * | Account agency number | String | - |
AccountNumber | Account number | String | + |
PayoutChannel * | Channel through which the payout will be processed. Values: CASH or ONLINE | String | Conditional |
RecipientPixKey * | The PIX key of the customer. | String | Conditional |
PayoutAccountTypeCode | Payout account type. Possible values: 0001 - Poupança 0002 - Conta Corrente | String | + |
TermsApproved | Possible values: Y/N | String | - |
* - conditional parameters are required for specific method, region and currency that is determined by the payment providers rules.
Sample curl request (Country = BR)
Sample curl request (Country = CL)
Sample curl request (Country = EC or PE)
ptn-email
If you set the value ptn-email
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
CustomerName | Indicates Customer Name | String(60) | + |
Email | Indicates Customer's Email | String(50) | - |
SecurityQuestion | The security question | String(40) | + |
SecurityQuestionAnswer | SecurityQuestionAnswer standards: - No spaces. - Length must be between 3 and 25 characters long | String(25) | + |
Sample curl request
ptn-sms
If you set the value ptn-sms
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
CustomerName | Indicates Customer Name | String (60) | + |
PhoneNumber | Indicates customer's phone number with Country Code | Integer(10) | + |
SecurityQuestion | The security question | String(40) | + |
SecurityQuestionAnswer | SecurityQuestionAnswer standards: - No spaces. - Length must be between 3 and 25 characters long | String(25) | + |
Sample curl request
pyk-payout
If you set the value pyk-payout
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
countryCode | The Country Code of the corresponding country | String (4) | + |
number | Beneficiary Account Number | String (30) | + |
orgId | Bank ID | String (20) | + |
orgCode | Bank Code | String (20) | + |
orgName | Bank Name | String (45) | + |
holderName | Bank Card Holder Name | String (200) | + |
firstName | Beneficiary's First Name | String (20) | + |
lastName | Beneficiary's Last Name | String (20) | + |
email | User's email | String (45) | + |
phone | The cardholder's phone number | String (20) | + |
personal_id | Identity ID of the payee | String (12) | Conditional |
personalType * | ID type of the payee | String (10) | Conditional |
accountType * | Account type of the payee | String (10) | Conditional |
* - conditional parameters are required for specific method, region and currency that is determined by the payment providers rules.
Sample curl request
yo-uganda-limited
If you set the value yo-uganda-limited
for the brand parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
payee_phone | This is a numerical value representing the account number of the mobile money account where you wish to transfer the funds to. This is typically the telephone number of the mobile phone receiving the amount. Telephone numbers MUST have the international code prepended, without the “+” sign. An example of a mobile money account number which would be valid for the MTN Uganda network is 256771234567. | String | + |
AccountProviderCode | Provide here the account provider code of the institution holding the account indicated in the Account parameter. | String | - |
NarrativeFileName | This parameter enables you to attach a file to the transaction. This is useful, for example, in the case where you may want to attach a scanned receipt, or a scanned payment authorization, depending on your internally established business rules. This parameter requires you to provide the name of the file you are attaching, as a string, for example “receipt.doc” or “receipt.pdf”. Note that the contents of this parameter are ignored if you have not provided the contents of the file using NarrativeFileBase64 below. | String | - |
NarrativeFileBase64 | This parameter enables you to attach a file to the transaction. This is useful, for example, in the case where you may want to attached a scanned receipt, or a scanned payment authorization, depending on your business rules. This parameter requires you to provide the contents of the file you are attaching, encoded in base-64 encoding. Note that the contents of this parameter are ignored if you have not provided a file name using NarrativeFileName above. | String | - |
ProviderReferenceText | In this field, enter text you wish to be present in any confirmation message which the mobile money provider network sends to the subscriber upon successful completion of the transaction. Some mobile money providers automatically send a confirmatory text message to the subscriber upon completion of transactions. This parameter allows you to provide some text which will be appended to any such confirmatory message sent to the subscriber. | String | - |
Sample curl request
zeropay (BTC Globals)
If you set the value “zeropay” for the brand
parameter you have to specify in your request the next parameters as well:
Parameter | Description | Values | Required |
---|---|---|---|
accountNumber | This is mandatory for payment methods other than UPI. | String | Conditional |
beneficiaryName | This is mandatory for payment methods other than UPI. | String | Conditional |
ifscCode | 11 digit bank code, this is mandatory for payment methods other than UPI. | String | Conditional |
upiId | This is mandatory only if paymentMethod selected is UPI. | String | Conditional |
payoutType | = EXPRESS | String | + |
paymentMethod | Allowed Values: IMPS NEFT RTGS UPI Payment method the merchant wants to use. If opting for UPI payment method, upiId is a mandatory parameter and for other payment methods accountNumber & ifscCode are mandatory. | String | + |